home *** CD-ROM | disk | FTP | other *** search
/ Aminet 45 / Aminet 45 (2001)(GTI - Schatztruhe)[!][Oct 2001].iso / Aminet / dev / e / 2b_CrtvE_src.lha / appendlists.s < prev    next >
Text File  |  2001-02-02  |  2KB  |  103 lines

  1. APPEND_LISTS:
  2.     MOVE.L      #.MESSY,D2
  3.     MOVE.L      #.ENDMESSY,D3
  4.     SUB.L       D2,D3
  5.     BTST    #7,CODEPREFS+2
  6.     BNE.S   .1
  7.     JSR         WRITECON
  8. .1:
  9.     BTST        #2,CODEPREFS+3
  10.     BEQ         .append
  11.     CMP.L       #1,NumHunks
  12.     BEQ         .append
  13.     MOVE.L      HunkList,A0
  14.     MOVE.L      A4,H_END(A0)
  15.     MOVE.L      a0,-(a7)
  16.     move.l      a4,-(a7)
  17.     bsr         APPEND
  18.     move.l      (a7)+,d7
  19.     move.l      (a7)+,d6
  20.     cmp.l       a4,d7
  21.     beq         .nothingtodo
  22.     GETM        A0
  23.     MOVE.L      HunkList,(A0)+
  24.     MOVE.L      A0,HunkList
  25.     exg.L       A0,D6
  26.     move.l      d6,H_PREV(A0)
  27.     exg.l       a0,d6
  28.     MOVE.L      d7,(A0)+
  29.     move.l      #$3ea,(a0)+
  30.     move.l      a4,(a0)+
  31.     clr.l       (a0)+
  32.     clr.l       (a0)+
  33.     DONEM       A0
  34.     ADDQ.L      #1,NumHunks
  35. .nothingtodo:
  36.     MOVE.l      A4,CURACODE
  37.     rts
  38.  
  39. .append:
  40.     bsr         APPEND
  41.     MOVE.L      HunkList,A0
  42.     MOVE.L      A4,H_END(A0)
  43.     rts
  44.  
  45. .MESSY:
  46.     DC.B        'linking arrays ...',$A
  47. .ENDMESSY:
  48.     EVEN
  49.  
  50.  
  51. APPEND:
  52.     lea         IMMLH,A0
  53. .LOOP2:
  54.     move.l      a4,d0
  55.     btst        #0,d0
  56.     beq         .SK1
  57.     clr.b       (a4)+
  58. .SK1:
  59.     MOVE.l      (A0),D0
  60.     BEQ         .END2
  61.     MOVE.l      D0,A0
  62.     move.w      4(a0),d0
  63.     MOVE.L      A0,-(a7)
  64.     addq.l      #2,a4       ; look below
  65.     bsr         ADDLABEL
  66.     move.l      (a7)+,a0
  67.     move.l      a4,-(a7)
  68.     subq.l      #2,a4       ; look above
  69.     move.l      6(a0),a1
  70.     move.l      10(a0),d0
  71.     subq.l      #1,d0
  72. .11:move.b      (a1)+,(a4)+
  73.     dbf         d0,.11
  74.  
  75.     lea         14(a0),a1   ; ref list
  76.     move.l      a0,d7
  77. .1L:move.l      a4,a6
  78.     move.l      (a1),d0     ; next
  79.     beq         .1e         ; if any
  80.     move.l      d0,a1       ;
  81.     move.l      (a7),a4     ;
  82.     add.w       10(a1),a4   ;
  83.     move.w      8(a1),d0    ;
  84.     bsr         ADDBRANCHRELOC
  85.     move.l      a6,a4       ;
  86.     move.w      8(a1),d0    ;
  87.     bsr         ADDLABEL
  88.     move.l      4(a1),a0
  89.     move.w      (a0)+,d0
  90. .1c:tst.w       d0
  91.     beq         .1L
  92.     move.b      (a0)+,(a4)+
  93.     subq.l      #1,d0
  94.     bra         .1c
  95.  
  96. .1e:move.l      d7,a0
  97.     addq.l      #4,a7
  98.     bra         .LOOP2
  99. .END2:
  100.     MOVE.l      A4,CURACODE
  101.     rts
  102.  
  103.